/**
 * 多边形实体类demo案例
 */

import * as Cesium from "cesium";
import * as EasyCesium from "@xhymf1992/easy-cesium";

export function drawPolygonEntity() {

    let positions = [
        Cesium.Cartesian3.fromDegrees(120, 30, 1000),
        Cesium.Cartesian3.fromDegrees(121, 30, 1000),
        Cesium.Cartesian3.fromDegrees(121, 31, 1000),
        Cesium.Cartesian3.fromDegrees(120, 31, 1000),
    ]
    let options = {
        id: "polygon-entity", // entity对象id，具有唯一性，必填
        name: "polygon-entity", // entity的名称，可选，默认为空
        show: true, // 是否显示，可选，默认显示
        positions: positions, // 多边形几何数据，必填
        color: "rgba(255,255,255,1)", // 多边形颜色，可选，默认白色
        texture: "https://hz.gridworld.com.cn:50443/te3/di/get_file/metal.jpg/", // 多边形纹理链接，可选，默认为空
        textureRepeatX: 1, // 纹理横向重复次数，可选，默认为1
        textureRepeatY: 1, // 纹理纵向重复次数，可选，默认为1
        outline: true, // 是否显示边框，可选，默认显示
        outlineColor: "rgba(0,0,0,1)", // 边框颜色，可选，默认黑色
        distanceDisplayCondition: [0, 1e6], // 可见距离范围，可选，默认为空。[0,1e6]表示距离多边形0-1000km距离内可见
        heightReference: 0, // 多边形的高程类型：0-海拔；1-贴在地表或3dtiles；2-相对于地表或3dtiles；3-贴在地表；4-相对于地表；5-贴在3dtiles；6-相对于3dtiles。默认为0
        classificationType: 2, // 多边形贴在地表或3dtiles上时，显示的部分：0-只显示贴在地形的部分；1-只显示贴在3dtiles的部分；2-全都显示。可选，默认为2
        constant: true, // 多边形是否是静态的，可选，默认为是，当为true时，多边形的参数变为时变类型，适用于制作动画
        viewer: window.viewer // cesium视图对象，必填
    };

    // @ts-ignore
    window.polygon = new EasyCesium.PolygonEntity(options);
    // @ts-ignore
    window.polygon.init();
    // @ts-ignore
    window.polygon.flyTo();

    // // 切换显隐
    // window.polygon.show = false;
    // window.polygon.show = true;

    // // 修改颜色
    // window.polygon.color = "rgba(255,255,0,1)";

    // // 修改纹理
    // window.polygon.texture = "https://hz.gridworld.com.cn:50443/te3/di/get_file/metal2.jpg/";

    // // 修改纹理横纵重复次数
    // window.polygon.textureRepeatX = 2;
    // window.polygon.textureRepeatY = 2;

    // // 切换边框的显隐
    // window.polygon.outline = false;
    // window.polygon.outline = true;

    // // 修改边框颜色
    // window.polygon.outlineColor = "rgba(255,0,0,1)";

    // // 修改距离显隐
    // window.polygon.distanceDisplayCondition = [0, 1e7];

    // // 修改高程类型
    // window.polygon.heightReference = 1; // 贴在地表上

    // // 修改贴地显示控制
    // window.polygon.classificationType = 1; // 只显示贴在3dtiles上的部分

    // // 销毁entity
    // window.polygon.destroy();

}